home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2002 February / maximum-cd-2002-02.iso / Files / Application Warp / setup.exe / _SETUP.1 / fphoverx.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-12-14  |  1.4 KB  |  98 lines

  1. import java.awt.Color;
  2. import java.awt.image.RGBImageFilter;
  3.  
  4. class fphoverx extends RGBImageFilter {
  5.    private int m_w;
  6.    private int m_h;
  7.    private int m_xc;
  8.    private int m_yc;
  9.    private int m_dmax;
  10.    private int m_r;
  11.    private int m_g;
  12.    private int m_b;
  13.    private int m_effect;
  14.    private int m_bevelSize;
  15.  
  16.    public fphoverx(int var1, int var2, Color var3, int var4) {
  17.       super.canFilterIndexColorModel = false;
  18.       this.m_w = var1;
  19.       this.m_h = var2;
  20.       this.m_xc = var1 / 2;
  21.       this.m_yc = var2 / 2;
  22.       this.m_dmax = this.m_xc * this.m_xc + this.m_yc * this.m_yc;
  23.       this.m_r = var3.getRed();
  24.       this.m_g = var3.getGreen();
  25.       this.m_b = var3.getBlue();
  26.       this.m_effect = var4;
  27.       this.m_bevelSize = var1 < var2 ? var1 / 12 : var2 / 12;
  28.       if (this.m_bevelSize < 2) {
  29.          this.m_bevelSize = 2;
  30.       }
  31.  
  32.    }
  33.  
  34.    public int filterRGB(int var1, int var2, int var3) {
  35.       int var4 = (var1 - this.m_xc) * (var1 - this.m_xc) + (var2 - this.m_yc) * (var2 - this.m_yc);
  36.       int var5 = (var3 & 16711680) >> 16;
  37.       int var6 = (var3 & '\uff00') >> 8;
  38.       int var7 = var3 & 255;
  39.       switch (this.m_effect) {
  40.          case 0:
  41.             var5 = this.m_r;
  42.             var6 = this.m_g;
  43.             var7 = this.m_b;
  44.             break;
  45.          case 1:
  46.             var5 = var5 + this.m_r >> 1;
  47.             var6 = var6 + this.m_g >> 1;
  48.             var7 = var7 + this.m_b >> 1;
  49.             break;
  50.          case 2:
  51.             var5 = this.m_r + (var5 - this.m_r) * var4 / this.m_dmax;
  52.             var6 = this.m_g + (var6 - this.m_g) * var4 / this.m_dmax;
  53.             var7 = this.m_b + (var7 - this.m_b) * var4 / this.m_dmax;
  54.             break;
  55.          case 3:
  56.             var5 += (this.m_r - var5) * var4 / this.m_dmax;
  57.             var6 += (this.m_g - var6) * var4 / this.m_dmax;
  58.             var7 += (this.m_b - var7) * var4 / this.m_dmax;
  59.             break;
  60.          case 4:
  61.             var5 = var5 + 255 - (255 - var5) * var4 / this.m_dmax >> 1;
  62.             var6 = var6 + 255 - (255 - var6) * var4 / this.m_dmax >> 1;
  63.             var7 = var7 + 255 - (255 - var7) * var4 / this.m_dmax >> 1;
  64.             break;
  65.          case 5:
  66.          case 6:
  67.             if (var1 < this.m_bevelSize || this.m_w - 1 - var1 < this.m_bevelSize || var2 < this.m_bevelSize || this.m_h - 1 - var2 < this.m_bevelSize) {
  68.                Color var8 = new Color(var5, var6, var7);
  69.                boolean var9 = false;
  70.                if (var1 < this.m_bevelSize && var1 + var2 <= this.m_h) {
  71.                   var9 = true;
  72.                } else if (var2 < this.m_bevelSize && var1 + var2 <= this.m_w) {
  73.                   var9 = true;
  74.                }
  75.  
  76.                if ((!var9 || this.m_effect != 5) && (var9 || this.m_effect != 6)) {
  77.                   var8 = var8.darker();
  78.                } else {
  79.                   var8 = var8.brighter();
  80.                }
  81.  
  82.                var5 = var8.getRed();
  83.                var6 = var8.getGreen();
  84.                var7 = var8.getBlue();
  85.             }
  86.             break;
  87.          case 7:
  88.             if (var5 == 0 && var6 == 0 && var7 == 0) {
  89.                var5 = this.m_r;
  90.                var6 = this.m_g;
  91.                var7 = this.m_b;
  92.             }
  93.       }
  94.  
  95.       return var3 & -16777216 | var5 << 16 | var6 << 8 | var7;
  96.    }
  97. }
  98.